package br.com.scriptmanager.services.dbo;

import br.com.scriptmanager.services.factory.DBO;
import br.com.scriptmanager.services.factory.Filtros;

public class ScriptsFindAll extends DBO {
	public static final String DEMANDA = "demanda";
	public static final String DESCRICAO = "descricao";
	public static final String DT_INICIO = "dt_inicio";
	public static final String DT_FIM = "dt_fim";
	public static final String PACOTE = "pacote";
	public static final String QUEST = "quest_infra";
	public static final String TIPO_SCRIPT = "id_tipo_script";
	
	private Long idScript;
	private Long idTipoScript;
	private String demanda;
	private String descricao;
	private String dtPD;
	private String script;
	private String week;
	private String questInfra;
	private String nmTipoScript;
	
	public Long getIdScript() {
		return idScript;
	}
	public void setIdScript(Long idScript) {
		this.idScript = idScript;
	}
	public Long getIdTipoScript() {
		return idTipoScript;
	}
	public void setIdTipoScript(Long idTipoScript) {
		this.idTipoScript = idTipoScript;
	}
	public String getDemanda() {
		return demanda;
	}
	public void setDemanda(String demanda) {
		this.demanda = demanda;
	}
	public String getDescricao() {
		return descricao;
	}
	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}
	public String getDtPD() {
		return dtPD;
	}
	public void setDtPD(String dtPD) {
		this.dtPD = dtPD;
	}
	public String getScript() {
		return script;
	}
	public void setScript(String script) {
		this.script = script;
	}
	public String getWeek() {
		return week;
	}
	public void setWeek(String week) {
		this.week = week;
	}
	public String getQuestInfra() {
		return questInfra;
	}
	public void setQuestInfra(String questInfra) {
		this.questInfra = questInfra;
	}
	public String getNmTipoScript() {
		return nmTipoScript;
	}
	public void setNmTipoScript(String nmTipoScript) {
		this.nmTipoScript = nmTipoScript;
	}
	
	@Override
	public String getSQL(Filtros filtro) {
		StringBuilder SQL = new StringBuilder("select " +
				"id_script,demanda,descricao,dt_pd,script,week,quest_infra,ts.id_tipo_script,ts.nm_tipo_script " +
				"from script.script s " +
				"inner join script.tipo_script ts on (s.id_tipo_script = ts.id_tipo_script) " +
				"where 1=1");
		if( filtro.has(DEMANDA) ){
			SQL.append(" and ").append(DEMANDA).append(" ilike ").append(" :").append(DEMANDA);
		}
		
		if( filtro.has(TIPO_SCRIPT) ){
			SQL.append(" and ").append(TIPO_SCRIPT).append(" = ").append(" :").append(TIPO_SCRIPT);
		}
		return SQL.toString();
	}
	
	
}
